// 1.配置基地址，简化后续网络操作时url的拼写。
    axios.defaults.baseURL='https://hmajax.itheima.net'

//2.抽取轻提示函数
    function showToast(msg){
        const toastDom=document.querySelector('.my-toast')
        //实例化toast组件
        const toast=new bootstrap.Toast(toastDom)
        // 修改内容并显示
        if(msg){
            document.querySelector('.toast-body').innerText=msg
        }
        toast.show()
    }
    // showToast('hello')
// 3.抽取校验函数(判断是否登录)
    function checkLogin(){
        // 3.1判断token(令牌)
            const token=localStorage.getItem('token')
            // console.log(token);
            // 3.1.1 token为null说明没有缓存
                if(!token){
                    showToast('请先登录')
                    setTimeout(()=>{
                        location.href='./login.html'
                    },1500)
                }
    }
// 4. 抽取用户名渲染函数
function renderUserName(){
    //4.1读取并渲染用户名
    const username=localStorage.getItem('username')
    document.querySelector('.username').innerText=username
}

// 5.抽取用户退出登录函数
function registerLogout(){
    //5.1绑定退出按钮点击事件
    document.querySelector('#logout').addEventListener('click',()=>{
        // console.log('点了退出');
        // 5.2删除缓存并跳转登录页
        localStorage.removeItem('username')
        localStorage.removeItem('token')
        location.href='./login.html'
    }) 
}

// 6.添加请求拦截器--统一配置token
axios.interceptors.request.use(function (config) {
    // 每次发送请求之前做些什么,比如: 统一设置token
    //6.1 通过config可以获取请求的设置，比如headers可以获取（修改）请求头
        // config.headers['info']='ithema666'
        // console.log( config.headers);
        const token=localStorage.getItem('token')
        // console.log(token);
        //6.2token存在才携带token
            if(token){
                config.headers['Authorization']=token       
            }
    return config;
}, function (error) {
    // 对请求错误做些什么
         return Promise.reject(error);
});

//7.添加响应拦截器--7.1统一处理token失效/7.2数据剥离
axios.interceptors.response.use(function (response) {
    // 2xx 范围内的状态码都会触发该函数。
    // 7.2数据剥离
        // console.log(response.data);
  return response.data;
}, function (error) {
    // 超出 2xx 范围的状态码都会触发该函数。
    // 7.1统一处理token失效
        // console.dir(error)
        if(error.response.status===401){
            //7.1.1弹窗提示用户
                showToast('登录失效,请重新登录')
            // 7.1.2删除缓存
                localStorage.removeItem('username')
                localStorage.removeItem('token')
            // 7.1.3返回登陆页
                setTimeout(()=>{
                    location.href='./login.html'
                },1500)
        }
    return Promise.reject(error);
});